import Axios from 'axios'
import {
  Message,
  Loading
} from 'element-ui';
import router from '@core-router';
import store from '@/store';
// import {
//   httpCode
// } from './http.js'
let loading //定义loading变量

function startLoading() { //使用Element loading-start 方法
  loading = Loading.service({
    lock: true,
    // text: '加载中...',
    background: 'rgba(0, 0, 0, 0.7)'
  })
}

function endLoading() { //使用Element loading-close 方法
  loading.close()
}

const service = Axios.create({
  baseURL: process.env.VUE_APP_API_BASE,
  timeout: 5000, // 请求超时时间
})

// 请求拦截  设置统一header
service.interceptors.request.use(config => {
  // 加载
  // ////console.log('请求',config)
  startLoading()
  config.headers['Content-Type'] = 'application/json; charset=utf-8';  //此处是增加的代码，设置请求头的类型
  if (sessionStorage.eleTokens)
   config.headers.token = sessionStorage.eleTokens;
  return config
 
}, error => {
  return Promise.reject(error)
})

// 响应拦截  403 token过期处理
service.interceptors.response.use(response => {
  // ////console.log('相应',response)
  endLoading()
  return response
}, error => {
  // ////console.log('错误',error.response)
  // 错误提醒
  endLoading()
  //    Message.error(error.response.data)
  // const {
  //   status
  // } = error.response
  // ////console.log(error,'123434');
  // debugger;
  //根据状态码提示不同内容，具体内容到http.js文件进行查看或者修改
  // Message.error(httpCode(error, status), 2000)
  if ( error.response.data.code == 403) {
    Message.error('登录超时，请重新登录')
    // 清除token
    store.commit('getSigin',3);
    sessionStorage.removeItem('eleTokens');
    sessionStorage.clear();
    // 页面跳转
    router.push({path:'/index'})
  
    return false;
  }
  // debugger;
  return Promise.reject(error.response);
})
export default {
  install: function (Vue, Option) {
    Object.defineProperty(Vue.prototype, "$http", {
      value: service
    });
    Object.defineProperty(global, "$http", {
      value: service
    });
  }
}